home *** CD-ROM | disk | FTP | other *** search
- static char *sccsid = "@(#)m_invert.c 4/7/82 (U of Maryland, FLB)";
-
- #include "mat.h"
-
- struct matrix *
- m_invert(mat)
- register struct matrix *mat;
- {
- register struct matrix *result;
- register int row, col;
- double det;
-
- if((det = m_determinant(mat)) == 0.0) {
- printf("m_invert: singular matrix\n");
- return(M_NULL);
- }
-
- m_create(result, mat->m_cols, mat->m_rows);
-
- for (row = 0; row < mat->m_rows; row++)
- for (col = 0; col < mat->m_cols; col++)
- m_v(result, col, row) = m_cofactor(mat, row, col) / det;
-
- return(result);
- }